Appendix A, which is a part of the present disclosure, is a microfiche appendix consisting of six sheets of microfiche having a total of 369 frames. Microfiche Appendix A is a listing of one embodiment of the client module of this invention, which is described more completely below, and a server, as described more completely below, to communicate and interact with the client module of this invention.
A portion of the disclosure of this patent document contains material, that includes, but is not limited to, Microfiche Appendix A, Appendix I, Appendix II, and FIGS. 10A to 10T, which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.
1. Field of the Invention
This invention relates generally to data communications, and in particular to two-way data communication devices including a cellular telephone,sa two-way pager, and a telephone that permit a user to interface with and interact with a server on a computer network.
2. Description of Related Art
For at least the last five years, the wireless communication industry has tried to merge computing with wireless communications. This industry wide effort has held the promise of bringing software intelligence to telecommunication devices including mobile wireless communications devices such as cellular telephones and two-way pagers as well as standard telephones.
After years of research and development, and hundreds of millions of dollars"" investment by some of the largest companies in the field such as Motorola, ATandT, Sony, Matsushita, Phillips and IBM, the results have been nothing but disappointing. Typically, the intelligent communication devices resulting from these efforts include both the hardware necessary for a computer module and the hardware for a wireless communications module. Examples of such products are Simon from IBM and Bell South, MagicLink from Sony, and Envoy from Motorola.
Fundamental design and cost problems arising directly from the approach taken by the designers of these intelligent communication devices have limited widespread market acceptance of these devices. The combination of a wireless communication module with a computing module leads to a device that is too bulky, too expensive, and too inflexible to address the market requirements.
The combination of the two modules is too large and too heavy to fit in a user""s pocket. Pocket size is a key requirement of the mobile communication market which remains unmet by these devices
In addition, the cost of these devices is close to the sum of the cost of the computer module and of the communications module, which is around a one thousand dollar end-user price. Market research indicates that the market for intelligent wireless communications devices is at prices around $300. Even with a 20% compound cost decline, it would take five years for the combination units to meet today""s customers"" price requirements. It is therefore unlikely that devices designed by combining a computer and a wireless module, no matter how miniaturized and cost reduced, can satisfy the cost requirement of the market during this decade.
To succeed in the market place, intelligent wireless communication devices must be able to support a wide variety of applications specific to each market segment. Typically, these applications must be added to the device by the end-user after purchase. Thus, the device must provide a method for loading the initial application and for subsequent updating of the application.
The price sensitivity for intelligent communication devices and the size limitations means that an intelligent communication device cannot support the amount of core memory (RAM), a hard disk or non-erasable memory, or a traditional floppy disk drive, commonly found on computers. These limitations close the traditional routes for delivering new applications or updates to intelligent communications devices.
As a result, the current crop of intelligent communication devices run only the few applications which were burned into their ROMs at the factory or which are contained in a ROM card plugged into a slot designed for this purpose. This scheme lacks the flexibility needed to run the thousands of applications required to address the fragmented requirements of the market and provides no simple method for updating the applications after the device has been sold.
Two other communication oriented attempts at bringing intelligence to telephones are Short Messaging Service (SMS) and Analog Display Service Interface (ADSI). SMS specifies how messages are delivered to and from a cellular telephone and how the cellular telephone should store the messages. SMS also defines some simple processing which the cellular telephone can perform on the message, such as calling a telephone number embedded in the message.
SMS""s architecture is similar to that of paging networks with the difference that devices implementing the SMS architecture operate over the control channel of the cellular telephone network. SMS is deployed primarily in Europe over the GSM network.
SMS messages are not delivered in real time. The time delays can range from 30 seconds up to 10 minutes, which makes SMS unsuitable for real time applications. The main purpose of SMS is the delivery of messages. SMS does not specify an application protocol or cellular telephone application module which further restricts its usefulness in running applications on cellular telephones. After a few years of deployment in Europe, SMS implementations have been limited to notification services such as two-way paging and voice mail notification.
SMS as a medium is unsuited to building applications which allows the retrieval, manipulation, and storage of information. This is the reason why the industry giants have not turned to SMS in their quest to add intelligence to cellular telephones, but have consistently attempted to combine a computer module with a wireless communications module.
ADSI was designed as an extension to Interactive Voice Response Systems. ADSI allows a smart telephone with a small screen to display prompts to assist users in choosing among various options. By using visual prompts instead of cumbersome voice prompts, ADSI is thought to make the use of interactive voice services easier and faster.
ADSI allows data to be sent from the service provider to the telephone in the form of screens. ADSI also allows the telephone to respond through touch tone signaling with a special coding to describe the full alphanumeric character set. With ADSI, a telephone is primarily a passive device. Services send text screens to the telephone, and the telephone sends back short strings indicating the choices the user made from the text screen.
ADSI makes no provisions for performance of processing in the telephone. As a result, ADSI generates a high traffic load on the telephone network since each user input is sent back to the service for processing. This makes ADSI unsuitable for wireless networks where bandwidth is at a premium and xe2x80x9cair efficiencyxe2x80x9d is one of the most sought after qualities. The lack of processing capability in the telephone and the high bandwidth requirements of ADSI have prevented it from being considered by the industry for implementing intelligent wireless devices.
Up to now, intelligent communication devices have combined a computing module with a wireless communications module. However, to gain widespread acceptance, a two-way data communication device with processing capability and the ability to run a wide variety of differing user applications is needed. In addition, such a device should be comparable in size, cost, and weight to a cellular telephone.
According to the principles of this invention, the prior art limitations of combining a computer module with a wireless communication module have been overcome. In particular, a two-way data communication device of this invention, such as a cellular telephone, two-way pager, or telephone includes a client module that communicates with a server computer over a two-way data communication network. The principles of this invention can be used with a wide variety of two-way data communication networks. For example, two-way data communication networks for cellular telephones that may be used include a cellular digital packet data network as well as TDMA, CDMA, and GSM circuit switched data networks; and the AMPS analog cellular network with a modem. Similarly, for two-way pagers, two-way data communication networks include PACT, the new ATandT endorsed two way paging standard, or other priority two-way paging networks with data transport capability. The two-way data communication network for a telephone is the public switched telephone network.
Using the two-way communication device that includes the client module, a user can provide information to the server computer, retrieve information from the server computer, provide data to an application on the server computer which uses the data and provides information to the two-way communication device, or sends the information to another location. The functionally provided to the user of the two-way communication device is limited only by the applications available on a server computer that is accessible to the user over the two-way data communication network.
This invention allows for the first time two-way communications devices such as cellular telephones, two-way pagers, and telephones to become open application platforms which in turn empowers software developers to deliver value-added applications and services to any two-way communication device that incorporates the principles of this invention. This is a radical shift from the current situation where telephones and two-way pagers are closed, proprietary systems. Consequently, an even playing field is created for the market to invent new uses for two-way communication devices and for two-way communication networks. Any entity from corporations to individuals can make new applications available to the installed base of two-way data communication devices that include this invention without physical modification or addition to the two-way communication device. Years after purchase, a two-way communication device incorporating this invention will run all the applications which were developed since its purchase.
Further, all these applications are available without the end user having to add anything or make any modification to the two-way communication device. Also, the applications are independent of the two-way data communication network. The applications do not depend on any feature of the two-way data communication network. Thus, the applications are unaffected by a change in the two-way data communication network.
Also, the applications on the server computer are independent of the two-way data communication device with which the server computer is interacting. An application on the server computer can communicate with any two-way data communication device that includes the client module of this invention and a network interface module to transmit data over, and receive data from the two-way data communication network. These two features mean that an investment in developing an application is insulated from either advances in two-way data communication devices, or advances in two-way data communication network technology.
As indicated above, the two-way data communication device of this invention utilizes a client module to transmit a message including a resource locator selected by the user over the two-way data communication network to a server on a server computer on the computer network. For example, the computer network can be a corporate wide area network, a corporate local area network, the Internet, or any combination of computer networks.
The server processes the message, i.e, executes the application addressed by the resource locator and transmits a response over the two-way data communication network to the two-way data communication device, which stores the response in a memory. The client module interprets the response and generates a user interface using information in the response. In one embodiment, the user interface includes at least one user data input option that is associated with a resource locator. In another embodiment, the user interface is a display.
The resource locator associated with the at least one user data input option can address any one of a wide variety of objects. In one embodiment, the resource locator associated with the at least one user data input option addresses an object on the server computer that transmitted the response. In another embodiment, the resource locator addresses an object on another server computer coupled to the two-way data communication network. In yet another embodiment the resource locator addresses an object stored in the two-way communication device.
When the user selects the at least one user data input option, the client module interprets the selection and if required, appends any input data to the resource allocator associated with the at least one user data input option. The client module transmits a message including the resource locator with any appended input data to the server computer. Alternatively, the resource locator with any appended data can be addressed to another server computer, or can address an object stored in the two-way communication device. If the resource locator addresses an object on a server computer, the client module provides the message to the network interface module which in turn transmits the message over the two-way data communication network.
Thus, in this embodiment, the message originally transmitted to the two-way data communication device included all the information necessary for the client module to generate the user interface, to associate the user selection and any data entered with a particular resource locator, and to transmit the appropriate resource locator in a subsequent message. The client module includes an interpreter that processed the information in the message. Since the message included all the information needed by the client module, the server computer that transmitted the message retained no state information concerning the message. Consequently, the server computer is defined as a stateless server computer.
An important aspect of this invention is that the message includes all information necessary for the client module to generate the user interface and a particular user interface can be independent from other user interfaces. Unlike prior art systems that gave the user a predetermined menu from which to select items, or limited the user to an E-mail like format, according to the principles of this invention, the user interfaces and possible interactions available to the user are determined only by the applications that developers make available. The possible interactions and user interfaces for one application can be totally different and independent from the possible interactions and user interfaces of another application. Thus, a cellular telephone, two-way pager, and a telephone all truly become an open platform.
These features of the invention are a significant departure from prior art systems. Typically, in the prior art, use of a particular application on a particular platform required that the application be compatible with the operating system on that platform. Further, each time a new version of the application was released, the user was required to take steps to update the application on the user""s platform. Further, if the user of the platform did not modify the operating system as new versions of the operating system were released, at some point in time, the platform would no longer be capable of processing a new version of an application that required a current version of the operating system.
This invention eliminates these problems. As explained above, the client module in the two-way data communication device functions an interpreter. The application on the server computer provides all information necessary for the interpreter to generate a user interface on the two-way data communication device, and in response to user selections or data input using the user interface, to route messages to an appropriate server, i.e, either the server that sent the original information or another server.
Thus, the client module only interprets this information and interacts appropriately with the hardware of the two-way data communication device. Consequently, to update an application requires only changes on the server computer and not changes in each two-way data communication device that communicates with that server computer. This invention eliminates the usual requirement for distribution of application software, and application software updates to the end user of the two-way data communication device.
In one embodiment, a two-way data communication system for communication between a server computer and a two-way data communication device selected from a group consisting of a cellular telephone, a two-way pager, and a telephone, includes a two-way data communication network, a server computer coupled to the two-way data communication network, and a two-way data communication device coupled to the two-way data communication network. The server computer includes a two-way data communication interface module coupled to the two-way data communication network, and a server coupled to the two-way data communication interface module. The server receives a message including a resource locator from the two-way data communication network. The resource locator includes an address of the server computer and of an application on that server computer. The server processes the message using the resource locator. In this embodiment, the server transmits a response to the message over the two-way data communication network.
The two-way data communication device, selected from the group consisting of a cellular telephone, a two-way pager, and a telephone, includes a network interface module coupled to the two-way data communication network, and a client module coupled to the network interface module. The client module transmitted the message including the resource locator to the server over the two-way data communication network. The client module also processes the response to the message from the server. The response includes information for a user interaction over the two-way data communication network.
The client module of this invention is lightweight, and thus requires only lightweight resources in a two-way data communication device. Consequently, the client module can use existing resources in such a device and therefore does not add to the cost of the two-way data communication device.
In one embodiment, the interpreter within the client module includes a plurality of managers including a user interface manager coupled to a display of the two-way data communication device where the user interface manager handles interactions with the display. The user interface manager also is coupled to a keypad of the two-way data communication device and handle interactions with the keypad. Herein, a keypad can be a telephone keypad, the keys found on a two-way pager, or other data input interface of a two-way communication device.
In one embodiment, the response generated by the server computer includes a plurality of resource locators and at least one of the plurality of resource locators includes an address to another server coupled to the communication network.
According to the principles of this invention, a method for using a two-way data communication device, selected from a group consisting of a cellular telephone, a two-way pager, and a telephone, to communicate with a server computer includes:
generating a message by a client module in response to data entered by the user of a two-way data communication device coupled to a two-way data communication network,
wherein the client module executes on a microcontroller of the two-way data communication device; and
the message includes a resource locator;
transmitting the message over the two-way data communication network to a server computer wherein the server computer is identified by the resource locator;
executing an application on the server computer identified by the resource locator to generate a response to the message; and
transmitting the response to a location identified by the application.
As indicated above the location can be the two-way communication device, another server computer, or some other device coupled to the server computer.